package gof.com.yew.memento;

public class StateDemo {
	public static void main(String[] args) {
		//初始化源文件
		Originator origin = new Originator();
		//创建管理快照类
		CareTaker ct = new CareTaker();
		//第一次往源文件添加内容
		origin.setName("1");
		//第一次保存快照
		ct.addList(origin.saveState());
		System.out.println("第一次存档，管理类快照显示"+ct.toString());
		//第二次往源文件添加内容
		origin.setName("12");
		//第二次保存快照
		ct.addList(origin.saveState());
		System.out.println("第二次存档，管理类快照显示"+ct.toString());
		//第三次往源文件添加内容
		origin.setName("123");
		//第三次保存快照
		ct.addList(origin.saveState());
		System.out.println("第三次存档，管理类快照显示"+ct.toString());
		System.out.println("-------------------------------------------");
		origin.revertState(ct.revertBack());
		System.out.println("恢复，文档内容为："+origin.getName());
		origin.revertState(ct.revertBack());
		System.out.println("恢复，文档内容为："+origin.getName());
		origin.revertState(ct.revertBack());
		System.out.println("恢复，文档内容为："+origin.getName());
		origin.revertState(ct.revertBack());
		System.out.println("恢复，文档内容为："+origin.getName());
		origin.revokeState(ct.revokeNext());
		System.out.println("撤销，文档内容为："+origin.getName());
		origin.revokeState(ct.revokeNext());
		System.out.println("撤销，文档内容为："+origin.getName());
		origin.revokeState(ct.revokeNext());
		System.out.println("撤销，文档内容为："+origin.getName());
		origin.revertState(ct.revertBack());
		System.out.println("恢复，文档内容为："+origin.getName());
		origin.revokeState(ct.revokeNext());
		System.out.println("撤销，文档内容为："+origin.getName());
		origin.revokeState(ct.revokeNext());
		System.out.println("撤销，文档内容为："+origin.getName());
		origin.revertState(ct.revertBack());
		System.out.println("恢复，文档内容为："+origin.getName());
		System.out.println("-------------------------------------------");
		System.out.println("管理类快照显示"+ct.toString());
	}
}
